package com.eling.elcms.travel.service;

import com.eling.elcms.core.service.IGenericManager;
import com.eling.elcms.travel.model.CheckInImplement;
import com.eling.elcms.travel.model.CheckOutSettlement;
import com.eling.elcms.travel.model.RoomPersonalInfo;
import com.eling.elcms.travel.model.RuleType;
import com.eling.elcms.travel.model.view.SettlementsResult;

import java.util.Date;

public interface ICheckOutSettlementManager extends IGenericManager<CheckOutSettlement, Long>{

	
	/**
	 * 根据规则计算会员应抵扣/应发优惠卷/其他额度
	 * @param roomPerson 入住人员
	 * @param type 规则类型
	 * @return 应抵扣/应发优惠卷/其他额度
	 */
	SettlementsResult getMemberRuleMoney(RoomPersonalInfo roomPerson, RuleType type,Date checkinDate,Date checkoutDate);

	/**
	 * 统一生成人员结算单接口
	 * 
	 * @param roomPersonalInfo 入住房间人员
	 * @param roomPrice 入住期间房价总额
	 * @param num 同房间的入住人数
	 * @param checkinDate 入住时间
	 * @param checkoutDate 退住时间
	 * @return
	 */
	CheckOutSettlement createCheckOutSettlement(RoomPersonalInfo roomPersonalInfo, Double roomPrice,Integer num,Date checkinDate,Date checkoutDate);

	CheckOutSettlement creatPickUp(CheckOutSettlement checkOutSettlement, CheckInImplement checkInImplement);
	
}
